home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / math / graphs / graphed-.1 / graphed- / usr / local / graphed / include / sgraph / dispatch_commands.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-10  |  5.1 KB  |  266 lines

  1. /* (C) Universitaet Passau 1986-1994 */
  2. /* GraphEd Source, 1986-1994 by Michael Himsolt    */
  3. #ifndef DISPATCH_COMMANDS_HEADER
  4. #define DISPATCH_COMMANDS_HEADER
  5.  
  6. typedef    enum {
  7.         /* Action allgemein                    */
  8.         
  9.         NO_ACTION,             /* Dummy, ggf. Fehlermeldung    */
  10.         CREATE_MODE,             /* Erzeuge Knoten und Kanten    */
  11.         EDIT_MODE,             /*                 */
  12.         EDIT_SELECTION,          /* Editiere Knoten/Kante/Goup    */
  13.         EDIT_GRAGRA,
  14.         EDIT_GRAPH_OF_SELECTION,
  15.         
  16.         CREATE_GRAPH,
  17.         CREATE_DIRECTED_GRAPH,
  18.         CREATE_UNDIRECTED_GRAPH,
  19.         
  20.         CREATE_PRODUCTION,       /* Erzeuge GraGra-Produktion    */
  21.         CREATE_DIRECTED_PRODUCTION,
  22.         CREATE_UNDIRECTED_PRODUCTION,
  23.                 
  24.         CREATE_EMBEDDING,       /* Erzeuge GraGra-Einbettung    */
  25.         CREATE_DIRECTED_EMBEDDING,
  26.         CREATE_UNDIRECTED_EMBEDDING,
  27.         
  28.         CREATE_NODE,
  29.         CREATE_EDGE,
  30.                 
  31.         CREATE_BUFFER,
  32.         
  33.         /* SELECTION Management                    */
  34.         
  35.         SELECT,
  36.         SELECT_NODE,
  37.         SELECT_EDGE,
  38.         SELECT_GROUP,
  39.         SELECT_GRAPH,
  40.         SELECT_GRAPH_OF_SELECTION,
  41.         SELECT_ALL,
  42.         
  43.         EXTEND_SELECTION,
  44.         EXTEND_SELECTION_WITH_NODE,
  45.         EXTEND_SELECTION_WITH_EDGE,
  46.         EXTEND_SELECTION_WITH_GROUP,
  47.         EXTEND_SELECTION_WITH_GRAPH,
  48.         
  49.         UNSELECT,
  50.                 
  51.         MOVE_SELECTION,
  52.         RESIZE_SELECTION,    /* Nodes and groups    */
  53.         ROTATE_SELECTION,    /* Groups        */
  54.         EXTEND_EDGE,
  55.         MOVE_EDGE,
  56.         COMPRIME_EDGE,
  57.         
  58.         PUT_SELECTION,
  59.         PUT_WHOLE_GRAPH,
  60.         GET_SELECTION,
  61.         GET_AS_GRAPH,
  62.         
  63.         ZOOM_SELECTION_DOWN,
  64.         ZOOM_SELECTION_UP,
  65. #define SHRINK_SELECTION ZOOM_SELECTION_DOWN
  66. #define EXPAND_SELECTION ZOOM_SELECTION_UP
  67.         
  68.         SPLIT_EDGE,
  69.         SPLIT_SELECTION,
  70.         MERGE_SELECTION,
  71.         
  72.         REVERSE_EDGE,
  73.         SWAP_SELECTED_GRAPH_DIRECTEDNESS,
  74.         SET_GRAPH_DIRECTEDNESS,
  75.         
  76.         LABEL_SELECTION,
  77.         
  78.         /* Gragra in action                    */
  79.         
  80.         COMPILE_PRODUCTION,
  81.         COMPILE_ALL_PRODUCTIONS,
  82.         PRETTY_PRINT_PRODUCTION,
  83.         PRETTY_PRINT_CURRENT_PRODUCTION,
  84.         PRETTY_PRINT_ALL_PRODUCTIONS,
  85.         SET_CURRENT_PRODUCTION,
  86.         APPLY_CURRENT_PRODUCTION,
  87.         APPLY_PRODUCTION,
  88.         
  89.         CENTER_SELECTION,
  90.         
  91.         SELECTION_STATISTICS,
  92.         BUFFER_STATISTICS,
  93.         ALL_STATISTICS,
  94.         
  95.         ABOUT_GRAPHED,
  96.         
  97.         /* Loeschen                        */
  98.         
  99.         DELETE_SELECTION,
  100.         DELETE_ALL,
  101.         
  102.         /*                            */
  103.         /* Defaultwerte fuer Knoten und Kanten            */
  104.         /*                            */
  105.         
  106.         NODE_DEFAULTS,
  107.         EDGE_DEFAULTS,
  108.         
  109.         /* The following are mainly used for the menu        */
  110.         
  111.         /* Node_edge_interface                    */
  112.         
  113.         SET_NEI,
  114.         NEI_NO_NODE_EDGE_INTERFACE,    /*         Wie        */
  115.         NEI_TO_BORDER_OF_BOUNDING_BOX,    /* Node_edge_interface    */
  116.         NEI_TO_CORNER_OF_BOUNDING_BOX,    /*            */
  117.         NEI_CLIPPED_TO_MIDDLE_OF_NODE,    /*            */
  118.         NEI_SPECIAL,
  119.         
  120.         /* Nodelabel_placement                    */
  121.         
  122.         SET_NLP,
  123.         NLP_MIDDLE,            /*                 */
  124.         NLP_UPPERLEFT,            /*         Wie        */
  125.         NLP_UPPERRIGHT,            /* Nodelabel_placement    */
  126.         NLP_LOWERLEFT,            /*            */
  127.         NLP_LOWERRIGHT,            /*            */
  128.         
  129.         /* Nodesize                        */
  130.         
  131.         SCALE_NODESIZE,
  132.         SCALE_NODESIZE_16_16,
  133.         SCALE_NODESIZE_32_32,
  134.         SCALE_NODESIZE_64_64,
  135.         SCALE_NODESIZE_128_128,
  136.         SCALE_NODESIZE_AS_SELECTED,
  137.         
  138.         /* Edgelabelsize                    */
  139.         
  140.         SCALE_EDGELABELSIZE,
  141.         SCALE_EDGELABELSIZE_64_64,
  142.         SCALE_EDGELABELSIZE_256_64,
  143.         SCALE_EDGELABELSIZE_UNCONSTRAINED,
  144.         
  145.         /* Label visibility                    */
  146.         
  147.         SET_NODELABEL_VISIBILITY,
  148.         SET_NODELABEL_VISIBLE,
  149.         SET_NODELABEL_INVISIBLE,
  150.         SET_EDGELABEL_VISIBILITY,
  151.         SET_EDGELABEL_VISIBLE,
  152.         SET_EDGELABEL_INVISIBLE,
  153.         
  154.         SET_ALL_NODELABEL_VISIBILITY,
  155.         SET_ALL_NODELABEL_VISIBLE,
  156.         SET_ALL_NODELABEL_INVISIBLE,
  157.         SET_ALL_EDGELABEL_VISIBILITY,
  158.         SET_ALL_EDGELABEL_VISIBLE,
  159.         SET_ALL_EDGELABEL_INVISIBLE,
  160.         
  161.         /* Arrow length                        */
  162.         
  163.         SCALE_ARROWLENGTH,
  164.         SCALE_ARROWLENGTH_0,
  165.         SCALE_ARROWLENGTH_8,
  166.         SCALE_ARROWLENGTH_12,
  167.         SCALE_ARROWLENGTH_16,
  168.         SCALE_ARROWLENGTH_AS_SELECTED,
  169.         
  170.         /* Arrow angle                        */
  171.         
  172.         SCALE_ARROWANGLE,
  173.         SCALE_ARROWANGLE_30,
  174.         SCALE_ARROWANGLE_45,
  175.         SCALE_ARROWANGLE_60,
  176.         SCALE_ARROWANGLE_AS_SELECTED,
  177.         
  178.         /* Gragra type                        */
  179.         
  180.         SET_GRAGRA_TYPE,
  181.         SET_GRAGRA_TYPE_NCE_1,
  182.         SET_GRAGRA_TYPE_NLC,
  183.         SET_GRAGRA_TYPE_BNLC,
  184.         SET_GRAGRA_TYPE_ENCE_1,
  185.  
  186.         
  187.         /* Misc    */
  188.                 
  189.         SET_NODEFONT,
  190.         SET_EDGEFONT,
  191.         SET_NODETYPE,
  192.         SET_EDGETYPE,
  193.         SET_NODECOLOR,
  194.         SET_EDGECOLOR,
  195.  
  196.         EDIT_NODETYPES,
  197.         EDIT_EDGETYPES,
  198.         EDIT_NODEFONTS,
  199.         EDIT_EDGEFONTS,
  200.         
  201.         /* Graph laden und speichern                */
  202.         
  203.         BASIC_LOAD,
  204.         LOAD_BY_SUBFRAME,
  205.         LOAD_AGAIN,
  206.         LOAD_AGAIN_SILENT,
  207.         BASIC_STORE,
  208.         STORE_BY_SUBFRAME,
  209.         STORE_TO_SAME_FILE,
  210.         STORE_SILENT_TO_FILE,
  211.         
  212.  
  213.         /* Spezial                        */
  214.         
  215.         REDRAW_ALL,
  216.         SAVE_STATE,
  217.         PRINT,
  218.         SET_GRID,
  219.         SET_GRID_8_8,
  220.         SET_GRID_16_16,
  221.         SET_GRID_32_32,
  222.         SET_GRID_64_64,
  223.         SET_GRID_128_128,
  224.         SET_GRID_OFF,
  225.         EXPAND_WORKING_AREA,
  226.         SHRINK_WORKING_AREA,
  227.         
  228.         SET_CONSTRAINED,
  229.         RESET_CONSTRAINED,
  230.         TOGGLE_CONSTRAINED,
  231.         
  232.         GROUP_LABELLING_OPERATION_GOES_TO_NODE,
  233.         GROUP_LABELLING_OPERATION_GOES_TO_EDGE,
  234.         TOGGLE_GROUP_LABELLING_OPERATION,
  235.         
  236.         /* some internal routines follow    */
  237.         
  238.         _CREATE_GRAPH,
  239.         
  240.         /* Advanced GraGra interface */
  241.  
  242.         RANDOM_APPLY_PRODUCTION,
  243.  
  244.         QUIT_GRAPHED,     /* The final action */
  245.  
  246.         /* Final dummy                        */
  247.         
  248.         NUMBER_OF_WORKING_AREA_MENU_ACTIONS    /* Dummy    */
  249.     }
  250.     User_action;
  251.  
  252.  
  253.  
  254. /* Command Flags */
  255.  
  256. #define MODIFIES_NOTHING 0
  257. #define MODIFIES_SOMETHING 0x1
  258. #define MODIFIES_GRAPH (MODIFIES_SOMETHING << 1)
  259. #define MODIFIES_GRAPH_STRUCTURE (MODIFIES_GRAPH << 1)
  260.  
  261.  
  262. extern    void        set_command_flags ();
  263. extern    unsigned    get_command_flags ();
  264.  
  265. #endif
  266.